﻿
Partial Class Sistema_InternadosPersonas
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
        If Request.QueryString("idInternado") = Nothing And String.IsNullOrEmpty(hdIdInternado.Value) Then
            Response.Redirect("Internados.aspx")
        End If
        If Page.IsPostBack = False Then
            If Request.QueryString("idInternado") = Nothing Then
                Response.Redirect("Internados.aspx")
            Else
                hdIdInternado.Value = Request.QueryString("idInternado")
            End If
            cargardatos()
            CargarVisitas()
            llenarComboVisitas(ddlTipoVisita)
        End If
    End Sub
    Sub llenarComboVisitas(ByRef ddl As DropDownList)
        Using bd As New BdHogaresDataContext
            Dim a = From c In bd.Web_Parametros
                    Where c.Categoria = "TipoVisita"
                    Select c.ValorOpcion, c.NombreOpcion
            With ddl
                .DataSource = a
                .DataTextField = "NombreOpcion"
                .DataValueField = "ValorOpcion"
                .DataBind()
            End With
        End Using
    End Sub

    Sub CargarVisitas()
        Using bd As New BdHogaresDataContext
            Dim a = From c In bd.Web_InternadosVisitas
                    Where c.idInternado = hdIdInternado.Value
                    Select c.TipoVisita, c.FechaDiligenciamiento, c.NombreProfesional, c.idinternadovisita,
                    TipoVisitaV = (bd.fn_GetNombreOpcion("TipoVisita", c.TipoVisita))

            grdVisitas.DataSource = a
            'grdVisitas.EditIndex = 2
            grdVisitas.DataBind()
        End Using
    End Sub
    Sub cargardatos()
        Using bd As New BdHogaresDataContext
            Dim a = (From c In bd.Web_internados
                    Where c.idinternado = hdIdInternado.Value
                    Select c.Institucion, c.Municipio.Municipio, c.Municipio.Departamento.Departamento,
                    c.NombreProfesional, fechaDiligenciamiento = String.Format("{0:d}", c.FechaDiligenciamiento), localizacion = (bd.fn_GetNombreOpcion("Ubicacion", c.Localizacion)),
                    c.CodProyecto, c.Vereda, c.Corregimiento, c.Barrio, c.Comuna, c.Direccion
                    ).FirstOrDefault


            'txtFechaDiligenciamiento.Text = a.fechaDiligenciamiento
            lblDepartamento.Text = a.Departamento
            lblMunicipio.Text = a.Municipio
            lblLocalizacion.Text = a.localizacion
            lblCodProyecto.Text = a.CodProyecto
            lblVereda.Text = a.Vereda
            lblCorregimiento.Text = a.Corregimiento
            lblBarrio.Text = a.Barrio
            lblComuna.Text = a.Comuna
            lblDireccion.Text = a.Direccion

            Dim b = From c In bd.Web_internadosPersonas
                     Where c.idinternado = hdIdInternado.Value
                     Select c.idinternado, c.CicloEducativo, c.CicloVital, c.idInternadoPersona,
                            c.consecutivopersona, c.NoParticipantes


            If b.Count() > 0 Then
                grdPersonas.DataSource = b
                grdPersonas.DataBind()
            End If

        End Using
    End Sub

    Protected Sub btnRegistrar_Click(sender As Object, e As System.EventArgs) Handles btnRegistrar.Click
        Response.Redirect("InternadosPersonasEditar.aspx?idinternado=" & hdIdInternado.Value)
    End Sub

    Protected Sub grdVisitas_RowEditing(sender As Object, e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles grdVisitas.RowEditing
        grdVisitas.EditIndex = e.NewEditIndex
        CargarVisitas()
        Dim ddl As DropDownList = CType(grdVisitas.Rows(e.NewEditIndex).FindControl("ddlTipoVisita"), DropDownList)
        llenarComboVisitas(ddl)
        ddl.SelectedValue = CType(grdVisitas.Rows(e.NewEditIndex).FindControl("hdTipoVisita"), HiddenField).Value
    End Sub

    Protected Sub grdVisitas_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles grdVisitas.RowUpdating
        'validar datos
        '
        Using bd As New BdHogaresDataContext
            Dim a = (From c In bd.Web_InternadosVisitas
                    Where c.idinternadovisita = CType(grdVisitas.Rows(e.RowIndex).FindControl("hdidinternadovisita"), HiddenField).Value
                    Select c).FirstOrDefault

            a.TipoVisita = CType(grdVisitas.Rows(e.RowIndex).FindControl("ddlTipoVisita"), DropDownList).SelectedValue
            a.NombreProfesional = CType(grdVisitas.Rows(e.RowIndex).FindControl("txtNombreProfesional"), TextBox).Text
            a.FechaDiligenciamiento = CType(grdVisitas.Rows(e.RowIndex).FindControl("txtFechaDiligenciamiento"), TextBox).Text

            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 86, Request.CurrentExecutionFilePath)
            grdVisitas.EditIndex = -1
            CargarVisitas()
        End Using
    End Sub

    Protected Sub grdVisitas_RowCancelingEdit(sender As Object, e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles grdVisitas.RowCancelingEdit
        grdVisitas.EditIndex = -1
        CargarVisitas()
    End Sub

    Protected Sub grdVisitas_RowDeleting(sender As Object, e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles grdVisitas.RowDeleting
        'verificar que se pueda eliminar

        Using bd As New BdHogaresDataContext
            Dim idvisita = CType(grdVisitas.Rows(e.RowIndex).FindControl("hdidinternadovisita"), HiddenField).Value
            Dim a = (From c In bd.Web_InternadosPersonaVisitas
                    Where c.idinternadovisita = idvisita
                    Select c).Count

            If a = 0 Then
                'eliminar la visita
                Dim b = (From c In bd.Web_InternadosVisitas
                    Where c.idinternadovisita = CType(grdVisitas.Rows(e.RowIndex).FindControl("hdidinternadovisita"), HiddenField).Value
                    Select c).FirstOrDefault
                bd.Web_InternadosVisitas.DeleteOnSubmit(b)
                bd.SubmitChanges()
                bd.registrarLog(Context.User.Identity.Name, 86, Request.CurrentExecutionFilePath)
                grdVisitas.EditIndex = -1
                CargarVisitas()
            Else
                Dim cv As CustomValidator = CType(grdVisitas.Rows(e.RowIndex).FindControl("cvEliminar"), CustomValidator)
                cv.ErrorMessage = "No se puede eliminar la visita por que ya tiene información registrada"
                cv.Enabled = True
            End If

        End Using
    End Sub

    Protected Sub btnRegistrar0_Click(sender As Object, e As System.EventArgs) Handles btnRegistrar0.Click
        MultiView1.SetActiveView(View2)

    End Sub

    Protected Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        txtFechaDiligenciamiento.Text = ""
        txtNombreProfesional.Text = ""
        ddlTipoVisita.SelectedIndex = -1
        MultiView1.SetActiveView(View1)
    End Sub

    Protected Sub btnRegistrar1_Click(sender As Object, e As System.EventArgs) Handles btnRegistrar1.Click
        'Validar datos
        'que el tipo visita no este repetido

        Dim visita As New Web_InternadosVisita()
        With visita
            .idInternado = hdIdInternado.Value
            .NombreProfesional = txtNombreProfesional.Text
            .FechaDiligenciamiento = txtFechaDiligenciamiento.Text
            .TipoVisita = ddlTipoVisita.SelectedValue
        End With
        Using bd As New BdHogaresDataContext
            bd.Web_InternadosVisitas.InsertOnSubmit(visita)
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 86, Request.CurrentExecutionFilePath)
        End Using
        CargarVisitas()
        MultiView1.SetActiveView(View1)
    End Sub
End Class
